接著,我們要開始學習指令有趣的地方,漸漸體會到指令的魔法之處了。
不過首先,要使用任何魔法之前,我們都要先認識自己
首先,我們複習一下,上次我們透過 whoami
這個指令,找到自己的使用者身份是誰
$ whoami
ec2-user
要在主機裡面加入一個新的使用者,我們可以使用 useradd
這個指令
不過,要是我們直接嘗試使用這個指令,我們會得到權限不足的問題
$ useradd ithome
-bash: /usr/sbin/useradd: Permission denied
這下該怎麼辦呢?誰才有權限建立新的使用者呢?
這邊就要提到 linux 系統裡面權限最大的使用者:root
基本上,root 可以被視為權限最大的管理員,不管檔案的建立者或者權限設置為何,root 都可以進行操作。建立使用者這種事情自然也沒問題。
要切換到 root 的權限,很幸運的,ec2-user
剛好有足夠的資格可以切換。切換的時候我們可以使用 sudo
(execute a command as another user)這個指令
$ sudo useradd ithome
有非常多的指令,在執行時如果沒有權限,前面加上 sudo 就會有權限了
執行之後沒有任何錯誤訊息,這就代表我們成功的建立出 ithome
這個使用者了
我們可以嘗試利用 su
(substitute user identity)這個切換的方式,將現在的身份切換成 ithome
$ su ithome
Password:
奇怪,我們根本沒有設置任何的密碼呀?
這是因為,要使用切換使用者的 su
這個指令,一樣需要有 root 的權限才可以執行。
所以我們要搭配 sudo
這個指令
$ sudo su ithome
$ whoami
ithome
到這邊要特別注意,由於 ithome
這個用戶沒有使用 sudo
的權限,所以要切換回 ec2-user
只能用重新連線的方式登入。
到這邊,我們切換身份的作法,就差不多介紹完畢了。
不過有的讀者可能會想到:既然 root 的身份是最大的使用者權限,我們為何不直接將使用者切換成是 root,那麼就可以一直用最大權限來進行操作了呀!
這個是可以的,並且由於 root 已經是指令預設切換的身份,我們不需要再特別寫在指令內。
在登入身份為 ec2-user
的狀況下,我們輸入
$ sudo su
# whoami
root
我們可以發現,不僅僅 whoami
顯示登入的身份是 root,包含我們的指令前面的符號,也從 $
變成了 #
今天我們的分享就到這邊為止,我們明天見!